// utils/userStorage.js
import storage from './storage';

const USER_KEY = 'user_info';
const TOKEN_KEY = 'user_token';
const TOKEN_EXPIRE = 30 * 24 * 60 * 60; // token有效期30天(秒)

// 保存用户信息和token
export function saveUser(userInfo) {
  try {
    // 用户信息永久存储
    const success1 = storage.setForever(USER_KEY, userInfo);
    // token带有效期存储
    const success2 = storage.setTemp(TOKEN_KEY, userInfo.token, TOKEN_EXPIRE);
    return success1 && success2;
  } catch (e) {
    console.error('保存用户信息失败:', e);
    return false;
  }
}

// 获取用户信息
export function getUser() {
  try {
    // 检查token是否有效
    if (!storage.has(TOKEN_KEY)) {
      return null;
    }
    return storage.get(USER_KEY) || null;
  } catch (e) {
    console.error('获取用户信息失败:', e);
    return null;
  }
}

// 获取token
export function getToken() {
  try {
    // 自动检查过期时间
    return storage.get(TOKEN_KEY, '');
  } catch (e) {
    console.error('获取token失败:', e);
    return '';
  }
}

// 清除用户信息
export function clearUser() {
  try {
    storage.remove(USER_KEY);
    storage.remove(TOKEN_KEY);
    return true;
  } catch (e) {
    console.error('清除用户信息失败:', e);
    return false;
  }
}

// 检查是否登录
export function isLoggedIn() {
  return storage.has(TOKEN_KEY);
}

// 刷新token有效期
export function refreshToken() {
  try {
    const token = getToken();
    if (!token) return false;
    return storage.updateExpire(TOKEN_KEY, TOKEN_EXPIRE);
  } catch (e) {
    console.error('刷新token失败:', e);
    return false;
  }
}